home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / snip9_91.arc / ATR2ANSI.C2 < prev    next >
Text File  |  1991-09-17  |  1KB  |  39 lines

  1. /*
  2. **  Form a command string for ANSI.SYS to set a given video attribute
  3. **
  4. **  Public domain demo by Bob Stout
  5. */
  6.  
  7. char *make_ansi(int vatr)
  8. {
  9.         void add_str(char *, char *);
  10.         char *string = (char *)malloc(40);
  11.         static char *fore[8] = {"30","34","32","36","31","35","33","37"};
  12.         static char *back[8] = {"40","44","42","46","41","45","43","47"};
  13.  
  14.         strcpy(string, "\033[");
  15.         if (vatr == 0x07)
  16.                 strcat(string, "0");
  17.         else
  18.         {
  19.                 if (vatr & 0x80)
  20.                         add_str(string, "5");
  21.                 if (vatr & 0x08)
  22.                         add_str(string, "1");
  23.                 add_str(string, fore[vatr & 0x07]);
  24.                 add_str(string, back[(vatr & 0x70) >> 4]);
  25.         }
  26.         strcat(string, "m");
  27.         return string;
  28. }
  29.  
  30. void add_str(char *string1, char *string2)
  31. {
  32.         char last_char;
  33.  
  34.         last_char = string1[strlen(string1) - 1];
  35.         if (last_char != '[')
  36.                 strcat(string1, ";");
  37.         strcat(string1, string2);
  38. }
  39.